#include <bits/stdc++.h>
#define int long long
using namespace std;

const int maxn = 1e6;
int nex[maxn][33]; // arr[i][j] 表示 i 第 2^j 次操作后的结果
void solve(){
	int a, b, c, q;
	cin >> a >> b >> c >> q;
	if (b == 1) {
		cout << a+c*q << '\n';
		return;
	}
	for (int i=1;i<= 2e5;i++) {
		nex[i][0] = i/b + c;
	}
	for (int j=1;j <= 32;j++) {
		for (int i=1;i <= 2e5;i++) {
			nex[i][j] = nex[nex[i][j-1]][j-1];
		}
	}
	int pos = 0;
	int ans = a;
	while (q) {
		if (q&1) {
			// 这一位是 1
			ans = nex[ans][pos];
		}
		pos++;
		q >>= 1;
	}
	cout << ans << '\n';
}



signed main(){
	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
	int t;
	t=1;
	while(t--){
		//TODO
		solve();
	}
	return 0;
}
